home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / lists / mint / l_1199 / 873 < prev    next >
Encoding:
Internet Message Format  |  1994-08-27  |  25.2 KB

  1. Date: Tue, 18 Jan 1994 16:38:24 +0100
  2. From: Christian Lynbech <lynbech@daimi.aau.dk>
  3. Message-Id: <199401181538.AA01863@avignon.daimi.aau.dk>
  4. To: clausb@hpbeo79.bbn.hp.com
  5. In-Reply-To: <9401181445.AA14977@hpbeo79.bbn.hp.com> (message from Claus Brod on Tue, 18 Jan 94 15:45:12 MEZ)
  6. Subject: Re: LINUX Filesystem standards
  7.  
  8.  
  9. ------------------------- linux fs std. part 2 -------------------------
  10.  
  11. /sbin : System binaries (binaries once kept in /etc)
  12.  
  13. Utilities used for system administration (and other root-only commands)
  14. are stored in /sbin, /usr/sbin, and /usr/local/sbin.  /sbin typically
  15. contains files essential for the booting phase of starting the system
  16. up.  Anything executed after /usr is known to be mounted (when there are
  17. no problems) should be placed into /usr/sbin.  Local-only system
  18. administration stuff should now be placed into /usr/local/sbin.
  19.  
  20. The concept of what goes into "sbin" directories is simple.  If a user
  21. will need to run it, then it should go somewhere else.  If it will only
  22. be run by root (i.e., system administration commands, networking
  23. daemons, system startup), then it should go in /sbin (or in /usr/sbin if
  24. the item is not essential).  Files such as `chfn' and `ac' which users
  25. only occasionally use should still be placed in /usr/bin.  `ping',
  26. although it is absolutely necessary for root (network recovery and
  27. diagnosis) is often used by users and should live in /bin for that
  28. reason.
  29.  
  30. Let me state it one more time, if there is any chance at all that a user
  31. should need to run it, do not put it here!  Users should never have to
  32. place /sbin (or any of the "sbin" directories) in their path.  It is
  33. true that they should probably not even be able to execute anything
  34. dangerous in /sbin if you (and programmers) have done the job right.  It
  35. vis reasonable to want to let them see what files are in /sbin.
  36. Therefore, don't make the directory totally unreadable unless you must.
  37.  
  38. /sbin was not created to protect users or to prevent them from seeing
  39. the OS, but to provide a good division between binaries that everyone
  40. uses and the commands that only administrators use (without exceptions).
  41.  
  42. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  43.  
  44. REQUIRED files for /sbin:
  45.  
  46. general:
  47.  
  48.  { getty, init, loadkeys, update, mkswap, swapon, swapoff }
  49.  
  50. shutdown commands:
  51.  
  52.  { halt, reboot, shutdown }
  53.  
  54. filesystem commands:
  55.  
  56.  { fdisk, fsck, fsck.*, tunefs (Ext2 only), mkfs, mkfs.*, mount, umount }
  57.  
  58.  "*" = (ext, ext2, minix, msdos, xiafs)
  59.  
  60. LILO commands:
  61.  
  62.  { lilo }
  63.  
  64. networking:
  65.  
  66.  { arp, ifconfig, ifsetup, route }
  67.  
  68. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  69.  
  70. /sbin is traditionally known for statically linked files although as you
  71. can see we have not even mentioned linking anything statically yet.
  72. This is because we feel that the need for statically linked files is not
  73. warranted except in several cases:
  74.  
  75. OPTIONAL files for /sbin:
  76.  
  77.         Static ln and static sync are useful when things go wrong.  The
  78.         primary use of sln (to repair hosed symlinks in /lib after a
  79.         poorly orchestrated upgrade) is no major longer a factor now
  80.         that the ldconfig program exists and can act as a guiding hand
  81.         in upgrading the dynamic libraries. Static sync is still useful
  82.         in some emergency situations.
  83.  
  84.  { sln, ssync }
  85.  
  86. ------------------------------------------------------------------------
  87.  
  88. /tmp : temporary files
  89.  
  90. /tmp is normally treated differently than /usr/tmp.  /tmp is usually
  91. cleaned out on reboot and is often a memory based filesystem, where the
  92. files in /usr/tmp stick around for an arbitrary length of time (system
  93. tmp directories are not guaranteed to hold data for any length of time).
  94.  
  95. ------------------------------------------------------------------------
  96.  
  97. /usr
  98.  
  99. /usr is the second major division of the filesystem.  /usr is sharable
  100. data.  That means that /usr should be sharable between various machines
  101. running Linux.  Because it is sharable between machines, any information
  102. that is machine-local must be stored elsewhere, hence /var enters the
  103. picture.
  104.  
  105. /usr : Second major mount point (permanent)
  106.      |
  107.      |- X11         : The X windows directory (X Windows version 11)
  108.      |- bin         : Most user commands
  109.      |- dict        : Spelling dictionaries
  110.      |- doc         : Miscellaneous documentation
  111.      |- etc         : Other configuration files (for programs in /usr/bin)
  112.      |- g++-include : GNU C++ include files
  113.      |- games       : Games and educational binaries
  114.      |- include     : Header files included by C programs
  115.      |- info        : The GNU info documentation system's primary directory
  116.      |- lib         : Libraries
  117.      |- local       : Local directory (empty after main installation)
  118.      |- man         : Online manuals
  119.      |- sbin        : Non-essential system administration binaries
  120.      |- share       : Architecture-independent data
  121.      \- src         : Source code
  122.  
  123. X11 is possibly a symlink to /usr/X386 or something else (/usr/X11R5,
  124. for instance).
  125.  
  126. The following list of directory symbolic links need to be added. This
  127. only needs to be done until compatibility with the /var scheme can be
  128. assumed to exist.
  129.  
  130.     /usr/adm -> /var/adm
  131.     /usr/preserve -> /var/preserve
  132.     /usr/spool -> /var/spool
  133.     /usr/tmp -> /var/tmp
  134.     /usr/spool/locks -> /var/lock
  135.  
  136. Most of the above symlinks should in time become unneeded as packages
  137. are changed to support /var in addition to /usr.  The exception, the
  138. directory that should be referenced in /usr rather than /var is /usr/tmp
  139. because some systems link it to different directories within /var.
  140.  
  141. The GNU Emacs lock file directory, if Emacs is installed, should be a
  142. symlink pointing to /var/lock/emacs if you want to be able to mount
  143. /usr read-only.  It is usually found in /usr/emacs, /usr/lib/emacs, or
  144. /usr/local/lib/emacs (preferably not the first).
  145.  
  146. ------------------------------------------------------------------------
  147.  
  148. /usr/X11 : X386 X11 installation directory
  149.          |- bin
  150.          |- doc
  151.          |- include
  152.          |- lib
  153.          \- man
  154.  
  155. This hierarchy is reserved for the use of XFree86 X11 releases.
  156.  
  157. In order to simplify matters and make X386 more compatible with other
  158. X11 packages from XFree86, our recommendation is to place a symbolic
  159. link, /usr/X11 pointing to /usr/X386 (or whatever directory your X11
  160. package was compiled to utilize).
  161.  
  162. ------------------------------------------------------------------------
  163.  
  164. /usr/etc : Non-essential system configuration files
  165.  
  166. All non-essential system configuration should be placed in here.
  167. Basically, files placed in here will be configuration for files in
  168. /usr/bin or /usr/sbin.
  169.  
  170. Configuration files placed in here have to be not only non-essential but
  171. non-host-specific, to allow /usr to be read-only and shared.
  172.  
  173. ------------------------------------------------------------------------
  174.  
  175. /usr/lib : Libraries for programming and packages
  176.          |- X11         : Symbolic link to /usr/X11/lib
  177.          |- emacs       : Support files for the GNU Emacs editor
  178.          |- groff       : Libraries/directories for the GNU groff system
  179.          |- gcc-lib     : System specific files/directories for GNU C compiler
  180.          |- terminfo    : Directories for terminfo database
  181.          |- uucp        : Commands for uucp
  182.          \- zoneinfo    : Timezone information and configuration
  183.  
  184. The word, library, includes static data files and some internal binaries
  185. as well (`sendmail').  `smail', if used, should be stored in /usr/bin
  186. because it contains functionality that both administrators and users may
  187. utilize on the command line.
  188.  
  189. ------------------------------------------------------------------------
  190.  
  191. /usr/local : Local directory
  192.            |- bin       : Local only binaries
  193.            |- etc       : Configuration for local only binaries
  194.            |- games     : Locally installed games
  195.            |- lib       : Libraries for /usr/local
  196.            |- info      : Local info pages
  197.            |- man       : Man page hierarchy for /usr/local
  198.            |- sbin      : Local only system administration
  199.            \- src       : Local source code
  200.  
  201. The "local" has an often misinterpreted meaning.  It is for use by the
  202. system administrator to install software where he/she wishes that needs
  203. to be safe from overwriting when the system software is updated.  More
  204. specifically, it is used to store anything that is sharable among a
  205. group of machines, but not found in /usr (not default).
  206.  
  207. This directory should always be 100% empty after first installing Linux,
  208. no exceptions to this rule should be made other than the listed
  209. directory stubs.
  210.  
  211. Locally installed software should be placed within /usr/local rather
  212. than /usr unless it is being installed to replace or upgrade software in
  213. /usr or it is felt that the installed software is "important enough" to
  214. place in /usr or in /.
  215.  
  216. ------------------------------------------------------------------------
  217.  
  218. /usr/man : Manual page hierarchy
  219.          |- man1        : User programs
  220.          |- man2        : System calls
  221.          |- man3        : Library functions and subroutines
  222.          |- man4        : Devices
  223.          |- man5        : File formats
  224.          |- man6        : Games
  225.          |- man7        : Miscellaneous
  226.          |- man8        : System Administration
  227.          \- man9        : Kernel internal variables and functions
  228.  
  229. The cat page sections (cat[1-9]) containing formatted manual page
  230. entries are also found within subdirectories of /usr/man, but are not
  231. required nor should they be distributed in lieu of nroff source manual
  232. pages.
  233.  
  234. Local and X Windows manual pages (if present) should be stored in
  235. /usr/local/man and /usr/X11/man, respectively.  These directories have a
  236. similar structure to /usr/man (man[1-8], cat[1-8], empty subdirectories
  237. being omitted).
  238.  
  239. As Linux (and UNIX) is further utilized in foreign countries and manual
  240. pages are translated to non-English versions, there is the impending
  241. problem that these manual pages will have to be stored somewhere else.
  242. Some German releases of Linux have already created a manual page system
  243. that is placed in /usr/man with the suffix "g".  This is a poor solution
  244. and will cause further problems in the long run as other languages
  245. appear, especially other languages starting with the same letter (Greek,
  246. Gaelic, whatever).
  247.  
  248. Therefore, all non-English manual pages sections should be stored in
  249. subdirectories within /usr/man named according to the language that the
  250. the contained manual pages are written in (lowercase characters), hence,
  251. for the German manual pages:
  252.  
  253. /usr/man/german/man[1-9] and possibly /usr/man/german/cat[1-9]
  254.  
  255. Then, German-speaking Linux users can add /usr/man/german to their
  256. MANPATH before /usr/man so that /usr/man/german manual pages are
  257. referenced first.  If a German manual page is not found for a given
  258. command then the English version may be referenced.  This setup will be
  259. needed as the number of foreign (non-English) manual pages increases.
  260. German is the language mentioned here since it is the only non-English
  261. manual page system distributed with any Linux system at this time.
  262. Other languages will probably follow and they should follow this scheme
  263. as well.  We only use German as our example because it was the first
  264. non-English manual system to be completed.
  265.  
  266. The practice of placing non-English in subdirectories of /usr/man should
  267. be followed as well for other manual page hierarchies, such as
  268. /usr/local/man and /usr/X11/man.
  269.  
  270. Note: Using the language itself (/usr/man/deutsch) rather than the
  271. English (/usr/man/german) was considered, but this was met with
  272. disapproval from many people, including those who do not speak English
  273. as a first language.  The reasons include: simplicity, the difficulty in
  274. displaying many languages' names in ASCII characters, and the fact that
  275. everyone should be able to recognize their language name in English.
  276.  
  277. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  278.  
  279. A description of each section follows:
  280.  
  281. man1: User programs
  282.  Manual pages that describe publicly accessible commands are contained
  283.  in this chapter.  Most program documentation that a user will need to
  284.  use is located here.
  285.  
  286. man2: System calls
  287.  This section describes all of the system calls which are entries to
  288.  the Linux kernel (operating system).  This section can be very useful
  289.  to programmers, but users have little need of the items in section 2.
  290.  
  291. man3: Library functions and subroutines
  292.  Section 3 describes user-level library routines.  This is another
  293.  chapter that is only really of interest to programmers.
  294.  
  295. man4: Special files
  296.  Section 4 describes the special files, related driver functions, and
  297.  networking support available in the system.  Typically, the device
  298.  files found in /dev.
  299.  
  300. man5: File formats
  301.  The formats for many nonintuitive data files are documented in the
  302.  section 5.  This includes various include files, program output files,
  303.  and system files
  304.  
  305. man6: Games
  306.  This chapter documents games, demos, and generally trivial programs.
  307.  Different people have various notions about how essential this is.
  308.  
  309. man7: Miscellaneous
  310.  Manual pages that are difficult to classify are designated as being
  311.  section 7.  The *roff and other text processing macro packages are
  312.  found here.
  313.  
  314. man8: System administration
  315.  Documentation for programs used by system administrators for system
  316.  operation and maintenance are documented here.  Some of these programs
  317.  are also occasionally useful for normal users.
  318.  
  319. man9: Kernel internal variables and functions
  320.  This appears on Linux systems to document the kernel source code.
  321.  
  322. ------------------------------------------------------------------------
  323.  
  324. /usr/sbin : Non-essential standard system binaries
  325.  
  326. Any non-essential system administration binaries, non-essential
  327. networking daemons (most other than those mentioned to be in /sbin),
  328. large system administration tools, interface programs, or anything
  329. used only by the sysadmin that isn't essential.
  330.  
  331. Local system binaries and local administration shell scripts belong in
  332. /usr/local/sbin.
  333.  
  334. ------------------------------------------------------------------------
  335.  
  336. /usr/share : Architecture-independent data
  337.  
  338. The specifications for /usr/share will be included in a supplementary
  339. draft to the main FSSTND draft.
  340.  
  341. ------------------------------------------------------------------------
  342.  
  343. /usr/src : Source code
  344.          |
  345.          \- linux : Source code for Linus' kernel
  346.  
  347. Any non-local source code should be placed in this subdirectory, the
  348. only thing in /usr/src that should always be placed in a certain
  349. location is the kernel source (when present or linked in part to the
  350. /usr/include structure).  [ Author's note: Also, if you have any taste,
  351. you'll learn to use subdirectories. Secondary note: Some people disagree
  352. with me on this one...]
  353.  
  354. The source code for the kernel should always be in place or at least the
  355. include files from the kernel source.  Those files are located in these
  356. directories:
  357.  
  358.         /usr/src/linux/include/asm
  359.         /usr/src/linux/include/linux
  360.  
  361. /usr/include usually contains links to `asm' and `linux' in the source
  362. directory, therefore, at least those include files should always be
  363. distributed with installations.  They should also be distributed in the
  364. /usr/src/linux directory so there are no problems when system
  365. administrators upgrade their kernel version for the first time.
  366.  
  367. ------------------------------------------------------------------------
  368.  
  369. /var : Directories of files that _tend_ to grow or vary in size
  370.      |- adm       : System logging and accounting files
  371.      |- domain    : DNS files (for `named'), networking only
  372.      |- lock      : Lock files
  373.      |- preserve  : Used to save text edited by `vi' after crash or hang-up
  374.      |- spool     : Directories for queuing work to be performed later
  375.      \- tmp       : Second temporary directory
  376.  
  377. The directory for variable length files.  This includes spools,
  378. administrative files, logging files, transient files, and temporary
  379. files.
  380.  
  381. A good reason to use /var is to make it possible to mount /usr
  382. read-only.  Everything that once went into /usr that is written to on a
  383. temporary basis, now goes into /var.  The aforementioned symbolic links,
  384. also mentioned below in the issues and rationale section, should be
  385. added to /usr for compatibility.  This is very helpful if you are
  386. mounting /usr through NFS or if you want a read-only /usr.
  387.  
  388. ;; There is much more to /var than just this, but I am still trying to
  389. ;; figure out how to put it down...
  390.  
  391. ------------------------------------------------------------------------
  392. /var/adm : System logging and accounting files
  393.  
  394. All system logging should be written to this subdirectory and not to
  395. /var/log.  `wtmp' and `lastlog' should be stored here.
  396.  
  397. ------------------------------------------------------------------------
  398.  
  399. /var/domain : DNS and `named' stuff
  400.             |- forward
  401.             \- reverse
  402.  
  403. This is only needed for systems using DNS (networking protocol for
  404. name servers).
  405.  
  406. ;; more expansion coming, this will possibly be renamed /var/named or
  407. ;; /var/bind
  408.  
  409. ------------------------------------------------------------------------
  410.  
  411. /var/lock : Lock files
  412.           \- emacs      : Emacs lock files
  413.  
  414. Lock files should be stored with a subdirectory of /var/lock appropriate
  415. subdirectory such as the emacs lock file directory.  This directory
  416. *does not* replace older locations for lock files other than
  417. /usr/spool/uucp and the serial lock files that were contained within it.
  418.  
  419. If you are the maintainer of a program that uses lock files and you wish
  420. to add a subdirectory for lock files within /var/lock, then it is a good
  421. idea to contact the FSSTND channel or myself to discuss placement of a
  422. directory for your lock files.
  423.  
  424. If you are interested in being able to mount /usr read-only then you may
  425. wish to recompile whatever package it is that uses /usr for lock files
  426. and place them in here, again - contact me if you want to add stuff on a
  427. permanent basis (i.e., you are a developer or a programmer of a Linux
  428. package).
  429.  
  430. The Emacs editor's lock files should be saved in /var/lock/emacs.  It is
  431. necessary to recompile Emacs to do this or to place an appropriate
  432. symlink where the Emacs lock file directory lies.
  433.  
  434. ------------------------------------------------------------------------
  435.  
  436. /var/spool : Spooling directories (queue work, work to be done later)
  437.            |- at        : at jobs
  438.            |- cron      : Cron jobs
  439.            |- lpd       : Printer spool directory
  440.            |- mail      : Directory for user mailboxes
  441.            |- mqueue    : Outgoing mail queue
  442.            \- uucp      : Spool directory for uucp
  443.  
  444. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  445.  
  446. /var/spool/lpd : Printer spool directory
  447.                |- {printer name}      : Spools for a specific printer
  448.                \- {printer name}.LOCK : Lock file for a specific printer
  449.  
  450. ------------------------------------------------------------------------
  451.  
  452. Issues and Additional Rationale
  453.  
  454. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  455.  
  456. What is Essential?
  457.  
  458. The answer is: essential to clean, create, prepare, check, find and
  459. mount other filesystems (possibly on remote machines).  There are other
  460. definitions, but this is a general definition that most people will at
  461. least incorporate into their own.
  462.  
  463. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  464.  
  465. Networking
  466.  
  467. Networking presented an interesting dilemma.  Many people like to place
  468. networking binaries and configuration separate from other binaries and
  469. configuration.  However, we disagree.  We feel that networking is not a
  470. "package", but an integral part of most UNIX machines.  Because of this
  471. networking should not be placed into a single directory, but
  472. systematically placed in the appropriate directories.
  473.  
  474.         /bin      : anything a user will want to use that is also
  475.                     considered essential (ftp, netstat, ping)
  476.         /sbin     : anything only root needs and is considered
  477.                     essential (arp, ifconfig, ifsetup, route)
  478.         /usr/bin  : any binaries a user will want to use, but are not
  479.                     essential (finger, rcp, rlogin, telnet, et al.)
  480.         /usr/sbin : any root only networking binaries that are not
  481.                     essential (networking daemons, lpd, et al.)
  482.  
  483. While this may seem confusing at first (and it does take a moment to
  484. digest), it does make sense.  If you can only mount root for some reason
  485. and you need access to networking to repair your system, you don't need
  486. the files to be off in /usr/etc (as they often are).  Files that are
  487. needed to mount /usr in normal (and emergency situations) are placed on
  488. the root subtree and any others are placed in /usr in order to keep the
  489. size of root small.
  490.  
  491. Configuration files for networking similarly go into /etc and /usr/etc.
  492.  
  493. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  494.  
  495. Architecture-independent Structures
  496.  
  497. Many people have noted that in this draft, that there was no /usr/share.
  498. There is now.  The structure, /usr/share, typically contains
  499. architecture-independent files such as man-pages, timezone, terminfo
  500. information, et al.  As of this time, there are no different
  501. architectures for Linux, but with the passage of time we should see
  502. Linux include other architectures and other UNIX systems.
  503.  
  504. One note, no program should ever reference anything in /usr/share, for
  505. instance, a manual page program should never directly look in
  506. /usr/share/man/man1/ls.1, but it should reference /usr/man/man1/ls.1 at
  507. all times.  Anything in /usr/share will be "pointed-to" by the use of
  508. symlinks from other areas in the filesystem, such as /usr/man,
  509. /usr/lib/{something}, etc.
  510.  
  511. The specifications for /usr/share are still be worked out and discussion
  512. with on the FSSTND channel or with me is encouraged (by me).
  513.  
  514. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  515.  
  516. Symbolic Links
  517.  
  518. There are a wide range of uses for symbolic links (symlinks) in every
  519. filesystem.  While symlinks are not encouraged for default setup (found
  520. after installing Linux) in a standard such as this, they are often used
  521. with good purpose on different systems.  The point is that symlinks
  522. should be there to keep everything where everyone else expects find it
  523.  
  524. Be prepared to accept that certain directories, even those contained on
  525. the root directory, are still going to be symlinks. For instance, on
  526. some systems /home will not be on the root, but symlinked to a /var
  527. directory, or to somewhere else.  /home could also have its own physical
  528. partition, of course, and be mounted on its own.
  529.  
  530. Similarly, because /usr might be on a central fileserver mounted via
  531. NFS, /usr/local could be symlinked to /var/local.  Like /usr/emacs/lock,
  532. this change can be justified by recalling one definition of /var:
  533. "directories of files that vary on different systems and machines".
  534.  
  535. Sometimes systems will also link /tmp to /var/{something} if the root
  536. partition becomes too small (or starts out too small).  There are more
  537. examples of "good" uses of symbolic links, but the entire issue boils
  538. down to two things: packages should be able to find things where they
  539. expect them (within reason) and symbolic links can be used to solve the
  540. problem in many cases.  However, problems also can arise from using too
  541. many symbolic links.  These problems include over-reliance on symbolic
  542. links to solve problems, confusion resulting from overuse of symbolic
  543. links, and the aesthetic preferences of different people.
  544.  
  545. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
  546.  
  547. Statically linked binaries
  548.  
  549. Linux is currently running on a wide variety of systems, some single
  550. user with small disks, some as servers in large networked environments.
  551. Because of this variety, this standard sets no rule regarding what
  552. binaries are static or dynamic with the following two exceptions.  Both
  553. `ln' and `sync' should have static versions in /sbin in addition to
  554. dynamic versions in /bin since everyday users may wish to run these too.
  555. Large Linux systems may wish to include other statically linked binaries
  556. (sh, init, mkfs, fsck, tunefs, mount, umount, swapon, swapoff, getty,
  557. login, etc.).  The developers and/or system administrators are free to
  558. statically/dynamically link these and other binaries as they see fit, as
  559. long as the location of the binaries doesn't change.
  560.  
  561. Networked systems (especially those of the future which may lack floppy
  562. drives), may want to make ifconfig, route, hostname, and other
  563. networking utilities static as well.  This is usually not needed.
  564.  
  565. ------------------------------------------------------------------------
  566.  
  567. ACKNOWLEDGEMENTS
  568.  
  569.    Credit for this text should be given to the FSSTND activists,
  570.    developers, users, and system administrators whose input was
  571.    essential to this standard.  I also wish to thank each of the
  572.    contributors who helped me to write, compile, and compose this,
  573.    a consensus standard.
  574.  
  575.    I also wish to give real credit to the Linux developers who have
  576.    seen that giving Linux a common filesystem layout is something
  577.    that be further the development of the Linux operating system.
  578.  
  579. ------------------------------------------------------------------------
  580.  
  581. Contributors:
  582.  
  583. [in alphabetical order]
  584.  
  585.    Drew Eckhardt        <drew@kinglear.cs.colorado.edu>
  586.    Ian Jackson          <ijackson@nyx.cs.du.edu>
  587.    Ian McCloghrie       <ian@ucsd.edu>
  588.    Daniel Quinlan       <quinlan@bucknell.edu>
  589.    Mike Sangrey         <mike@sojurn.lns.pa.us>
  590.    David H. Silber      <dhs@glowworm.firefly.com>
  591.    Theodore Ts'o        <tytso@athena.mit.edu>
  592.    Stephen Tweedie      <sct@dcs.ed.ac.uk>
  593.  
  594. ------------------------------------------------------------------------
  595.